﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<head>
<title>SetStartupInfoW</title>
<meta http-equiv="Content-Type" Content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../styles/styles.css">
<script language="javascript" src='../links.js' type="text/javascript"></script>
</head>
<body>

<h1>SetStartupInfoW</h1>
<div class=navbar>
<a href="../index.html">главная</a> |
<a href="index.html">экспортируемые функции</a> |
<a href="../basicapi/index.html">Basic API</a>
</div>

<div class=shortdescr>
Функция <code>SetStartupInfoW</code> вызывается один раз, после загрузки DLL-модуля в память. Far Manager передаёт плагину информацию, необходимую для дальнейшей работы.
</div>

<pre class=syntax>
void WINAPI SetStartupInfoW(
  const struct PluginStartupInfo *Info
);
</pre>

<h3>Параметры</h3>
<div class=descr>
  <div class=dfn>Info</div>
    <div class=dfndescr>Указатель на структуру <a href="../structures/pluginstartupinfo.html">PluginStartupInfo</a>.
    В начале функции проверьте, что поле <code>PluginStartupInfo.StructSize >= sizeof(PluginStartupInfo)</code>.</div>
</div>

<h3>Возвращаемое значение</h3>
<div class=descr>
Нет.
</div>

<h3>Замечания</h3>
<div class=descr>
<ol>
<li>Эта функция вызывается сразу же после вызова функции <a href="getglobalinfow.html">GetGlobalInfoW</a>.
<li>Указатель <code>Info</code> действителен только в области видимости данной функции (до выхода из функции), так что структура должна копироваться во внутреннюю переменную плагина для дальнейшего использования:
<pre class=code>static struct PluginStartupInfo Info;
...
void WINAPI SetStartupInfoW(const struct PluginStartupInfo *Info)
{
  if (Info->StructSize >= sizeof(PluginStartupInfo))
    ::Info=*Info;
  ...
}
</pre>
<li>Если в плагине используются <a href="../fsf/index.html">стандартные функции</a> из структуры <a href="../structures/farstandardfunctions.html">FarStandardFunctions</a>,
    то член <a href="../structures/pluginstartupinfo.html">PluginStartupInfo.FSF</a> также должен быть сохранён в локальное пространство плагина:
  <pre class=code>static struct PluginStartupInfo Info;
static struct FarStandardFunctions FSF;

void WINAPI SetStartupInfoW(const struct PluginStartupInfo *Info)
{
  if (Info->StructSize >= sizeof(PluginStartupInfo))
  {
    ::Info=*Info;
     FSF=*Info-&gt;FSF;
     ::Info.FSF=&amp;FSF; // скорректируем адрес в локальной структуре
  ...
  }
} </pre>
</ol>
</div>

<div class=see>Смотрите также:</div>
<div class=seecont>
</div>

</body>
</html>
